<?php

/**
 * Permite hacer operaciones con la tabla exonerado de la base de datos
 * @package simertweb 
 * @subpackage models 
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class Mexonerado extends Mpersona {

    public function __construct() {
        $this->load->database();
        $this->load->model('mhistorico');
    }

    /**
     * Para modificar verifica que el código de carnet de discapacidad no se duplique
     * @param type $codigo es el id del exonerado
     * @param type $carnet es el código de carnet de discapacidad
     * @return boolean
     */
    function validar_carnet_modificar($codigo, $carnet) {
        $this->db->where('idExonerado !=', $codigo);
        $this->db->where('codcarnet', $carnet);
        $query = $this->db->get('exonerado');
        if ($query->num_rows() == 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    /**
     * Verifica si el código de carnet de discapacidad existe
     * @return boolean
     */
    function validar_carnet() {
        $this->db->where('codcarnet', $_POST["codigocarnet"]); //busca la persna segun la cedula ingresada
        $query = $this->db->get('exonerado');
        if ($query->num_rows() == 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    /**
     * Obtiene los exonerados del pago del servicio de estacionamieno
     * @return array
     */
    function listar_exonerados() {
        $listaexonerados = array();
        $query = $this->db->get('exonerado')->result();
        foreach ($query as $obj) {
            $query = $this->listar_persona_exonerado($obj->Persona_idPersona);
            $exonerado = array(
                'nombre' => $query->nombre,
                'apellido' => $query->apellido,
                'cedula' => $query->cedula,
                'codcarnet' => $obj->codcarnet,
                'placa' => $obj->placa,
                'id' => $obj->idExonerado,
            );
            array_push($listaexonerados, $exonerado);
        }
        return $listaexonerados;
    }

    /**
     * Guarda un exonerado del pago del servicio de estacionamieno
     */
    function guardar_exonerado() {
        $this->guaradar_persona_exonerado();
        $this->db->where('cedula', $_POST["cedula"]);
        $query = $this->db->get('persona')->row()->idPersona;
        $data = array(
            'codcarnet' => $_POST['codigocarnet'],
            'placa' => strtoupper($_POST['placas']),
            'Persona_idPersona' => $query
        );
        $this->db->insert('exonerado', $data); //guarda los datos en la bd
        $id = mysql_insert_id();
        $this->mhistorico->guardar_acceso($id, "Creación de una persona exonerada del pago del SIMERT");
    }

    /**
     * Elimina un exonerado del pago del servicio de estacionamieno
     */
    function eliminar_exonerado() {
        $idPersona = $this->mpersona->obtener_idPersona_exonerado($_POST['lista']);
        $this->db->delete('exonerado', array('idExonerado' => $_POST['lista']));
        $this->mpersona->eliminar_persona($idPersona);
        $this->mhistorico->guardar_acceso($_POST['lista'], "Eliminación de una persona exonerada del pago del SIMERT");
    }

    /**
     * Obtiene un exonerado del pago del servicio de estacionamieno
     * @return type array
     */
    function obtener_exonerado() {
        $idPersona = $this->mpersona->obtener_idPersona_exonerado($_POST['modificar']);
        $this->db->where('idPersona', $idPersona);
        $query = $this->db->get('persona')->result();
        $this->db->where('idExonerado', $_POST['modificar']);
        $query2 = $this->db->get('exonerado')->result();
        return array_merge($query, $query2);
    }

    /**
     * Actualiza un exonerado del pago del servicio de estacionamieno
     * @param type $id es el id de persona
     * @param type $carnet es el código carnet de discapacidad
     * @param type $placa es la placa del vehículo
     */
    function actualizar_exonerado($id, $carnet, $placa) {
        $query = $this->mpersona->obtener_idPersona_exonerado($id);
        $this->mpersona->actualizar_persona_exonerada($query, $_POST["nombres"], $_POST["apellidos"], $_POST["cedula"]);
        $data = array(
            'codcarnet' => $carnet,
            'placa' => $placa,
        );
        $this->db->where('idExonerado', $id);
        $this->db->update('exonerado', $data);
        $this->mhistorico->guardar_acceso($id, "Modificación de una persona exonerada del pago del SIMERT");
    }

}

?>
